package com.xjtu.chapter07.listener;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 * @author yjq
 * @version 1.0
 * @date 2021/8/21 15:58
 */
public class EventDemo2 {
    public static void main(String[] args) {
        Frame frame = new Frame("测试监听器");
        //创建组件（事件源）
        TextField textField = new TextField(30);
        Choice names = new Choice();
        names.add("张三");
        names.add("李四");
        names.add("王五");

        //给文本域添加TextListener，监听内容的变化
        textField.addTextListener(new TextListener() {
            @Override
            public void textValueChanged(TextEvent textEvent) {
                System.out.println("当前文本框中的内容："+textField.getText());
            }
        });

        //给下拉选择框添加ItemListener,监听条目选项的变化
        names.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent itemEvent) {
                System.out.println("当前选中的条目为："+itemEvent.getItem());
            }
        });

        //给frame注册ContainerListener监听器，监听容器中组件的添加
        frame.addContainerListener(new ContainerListener() {
            @Override
            public void componentAdded(ContainerEvent containerEvent) {
                System.out.println("frame中添加了："+containerEvent.getChild());
            }
            @Override
            public void componentRemoved(ContainerEvent containerEvent) {

            }
        });

        //添加到frame中
        Box hBox = Box.createHorizontalBox();
        hBox.add(names);
        hBox.add(textField);
        frame.add(hBox);
        frame.pack();
        frame.setVisible(true);
    }

}
